Computers and computer networks are increasingly used for conducting electronic commerce and other types of transactions. Applications which allow individual users to engage in these transactions also continue to emerge. In order to facilitate these transactions, the integrity and validity of these transactions and the security of applications used to perform these transactions must be maintained. However, conventional computer environments allow hackers to compromise the integrity and validity of such transactions. Consequently, there continues to be a need to provide security for users wising to engage in electronic commerce and other transactions.
Conventional computer networks, such as a local area network, a wide area network and/or a public network (e.g. the Internet), link personal computers and workstations to one or more servers and to each other. This environment permits computer users to interact with the servers or with each other. Transactions between computer users or between computer users and servers are processed using applications that are executed on conventional operating system platforms such as OS/2, Windows, and UNIX. Typically, these transactions include confidential or sensitive data such as bank, credit and debit account information, and may involve significant sums of money. These conventional operating system platforms are typically recognized as insecure.
Thus, conventional computer systems have significant security holes. Secure execution in these conventional computer environments is extremely difficult to provide. For example, recent security breaches in computer systems have occurred through holes in browser applications used to access a network such as the Internet. Using push technology that automatically delivers information, such as ActiveX or Javascript programs, to a computer, unscrupulous individuals may gain access to the computer system and sensitive user data. Other security breaches have occurred using attacks which decode files containing cryptographic keys. As a result, an attacker can compromise all future communications or masquerade as the user or sensitive information holder.
Therefore, sensitive data passing through or stored in the computers can be compromised by hackers or intruders that can gain access to the computer or the computer network to which the computer is connected. Moreover, even if the sensitive data were to be encrypted, other sensitive data inside the computers may be susceptible to attack when, for example, the computer systems download and execute rogue programs.
There are emerging mechanisms to address potential attacks on computer systems. One of these is the creation of trusted execution environments in a conventional computer system. These trusted environments possess hidden execution and protected storage. Hidden execution allows for the execution of operations which are not observable to traditional computing resources. Protected storage provides for the safekeeping of sensitive information, such as cryptographic keys, signature keys, or other private information. Hidden execution and protected storage allow conventional computer systems to execute portions of transactional protocols without allowing software debuggers to monitor the data structures and effect breakpoint or watchpoints within the trusted environment. These aspects of the trusted environment also aid in preventing viruses or other attack mechanisms from modifying the application data or executable object code. Thus, sensitive portions of the transactions may be protected from some traditional software attacks.
Although trusted environments provide some protection from traditional attacks, these trusted environments have several drawbacks. In particular, there is no mechanism for verifying the integrity of the trusted environment's security. A user may wish to provide input including sensitive data from a variety of sources, including smart cards, biometric sensors, or other peripheral devices. It is difficult to allow a user to input data to the trusted environment in a secure manner. It is also difficult to securely provide feedback relating to the processing occurring in the trusted environment.
Accordingly, what is needed is a system and method for providing an environment which allows secure transactions to be processed while avoiding many of drawbacks of the present implementations of trusted environments. The present invention addresses such a need.